/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.servicelayer.gamelogic.manager;

import cz.muni.fi.diplomka.servicelayer.dto.MarchingArmy;
import java.util.List;

/**
 * Interface for manipulating with Marching Armies
 *
 * @author Jakub Kutil
 */
public interface MarchingArmyManager {

    /**
     * Creates Marching Army
     *
     * @param marchingArmy Marching Army to create
     */
    public void createMarchingArmy(MarchingArmy marchingArmy);

    /**
     * Edits Marching Army
     *
     * @param marchingArmy Marching Army to edit
     */
    public void editMarchingArmy(MarchingArmy marchingArmy);

    /**
     * Deletes Marching Army
     *
     * @param marchingArmy Marching Army to delete
     */
    public void deleteMarchingArmy(MarchingArmy marchingArmy);

    /**
     * Gets all Marching Armies coming from specified City
     *
     * @param cityId id of specified City
     * @return list of all Marching Armies coming from specified City
     */
    public List<MarchingArmy> getAllMarchingArmiesOfCity(Long cityId);

    /**
     * Gets all Marching Armies
     *
     * @return list of all Marching Armies
     */
    public List<MarchingArmy> getAllMarchingArmies();
}
